<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		function House() {
			this.addr = "西山公园路一号碧海蓝天别墅区vip8栋";
			this.zhuangXiu = function (visitor) {
				visitor.doThing("钥匙",this.addr);
			}
		}

		function Visitor(type) {
			this.type = type;
			this.doThing = function (a,addr) {
				console.log(`
					我是${this.type}工人，我来到${addr}
					我拿到了${a}
					我进行装修
					`);
			}
		}

		var house = new House();
		var mug = new Visitor("木工");
		mug.doThing = function (a,addr) {
				console.log(`
					我是${this.type}工，我开着我的玛莎拉蒂来到${addr}
					我拿到了${a}和我的电锤、电锯、电钻、起订强
					我进行装修，闲杂人等请离开
					`);
			}
		house.zhuangXiu(new Visitor("水电工"));
		house.zhuangXiu(mug);
		house.zhuangXiu(new Visitor("油漆工"));
		house.zhuangXiu(new Visitor("泥工"));


		/*
			老张开车去东北，撞了。
			碰到一个东北人，送到医院封5针，好了

			名词，要么是对象，要么是属性
			动词就一定是方法
		*/

		LaoZhang = {
			name:"老张",
			kaiche : function (car,target) {
				car.go(target);
			}
		}
		DongBei = {
			name:"中国的东北地区"
		}
		YiYuan = {
			fengZheng:function (Ren) {
				console.log(`
					这里是一家有良心的医院，我们包治百病，给${Ren.name}逢5针,治好了
					`);
			}
		}
		DongBeiRen = {

			sendToYiYuan:function (Ren) {
				console.log(`
					我是一个东北人，东北人都是活雷锋，我送${Ren.name}去医院
					`);
				return Ren;
			}
		}
		Car = {
			go:function (target) {
				console.log(`
					我是一辆玛莎拉蒂，我现在要去${target.name},发生了车祸
					`);
			}
		}

		LaoZhang.kaiche(Car,DongBei);
		var ren = DongBeiRen.sendToYiYuan(LaoZhang);
		YiYuan.fengZheng(ren);
	</script>
</body>
</html>